Skip to content

窗口模块总览 - Overview

本分类做什么

围绕 HWND绑定窗口:查询/枚举窗口、几何与坐标变换、标题与类名、剪贴板与字符串发送、进程与图标等。多数接口的 坐标是否相对绑定窗口绑定模式 与接口说明而定,需与 图像识别图像处理 文档中的「相对窗口」说明交叉阅读。


一、绑定类:先绑再操作

接口差异
BindWindow基础绑定,参数相对简单。
BindWindowEx高级绑定,更多模式/扩展参数(截图、键鼠后端等常与后续 SetConfig 配合)。
UnBindWindow解除绑定,之后 MatchWindows* 等不再针对该窗。
GetBindWindow查询当前绑定 HWND。

选型:一般脚本 BindWindow 够用;需要 后台截图/特殊键鼠/DPI 等 → BindWindowEx + 设置


二、查找与枚举:按「精确句柄」还是「枚举列表」

类型代表接口差异
单窗查找FindWindowFindWindowExFindWindowByProcess*FindWindowSuper输入条件不同:类名/标题/进程名/PID/扩展条件。
枚举EnumWindowEnumWindowByProcess*EnumProcess返回 一批 窗口或进程,需自行循环筛选。
特殊窗口GetSpecialWindowEnumWindowSuperFindWindowSuper桌面、任务栏等特殊句柄,权限与系统版本可能影响结果。

差异要点Find* 返回 第一个满足 的句柄;Enum*回调或列表 遍历;ByProcess 系列以 进程 为锚缩小范围。


三、几何与坐标

方向接口差异
窗口矩形GetWindowRectGetClientRect前者含边框相对屏幕;后者 客户区,用于点击/截图区域换算。
坐标互转ClientToScreenScreenToClient客户区坐标 ↔ 屏幕坐标,绑定窗口 下图点找色常用。
尺寸与状态GetClientSizeSetWindowSizeSetClientSizeSetWindowState读/改客户区或整窗尺寸、最小化最大化等。
锁定与限制LockWindowSizeLockWindowPositionDisableMinMax禁止拖动边框改大小、禁止拖动标题栏移动、禁止最大/最小化按钮。
DPI / 缩放GetWindowDpiAwarenessScaleGetScaleFromWindows前者偏 DPI 感知;后者常与 图像识别 matchVal/scale 联动。
VNC 客户区偏移SetClientLocationVNC 全屏帧无法自动得到客户区屏幕位置时,人工设置客户区左上角在远程画面中的偏移;见设置分类详情。

四、信息与进程

接口用途
GetWindowTitleGetWindowClassGetWindowProcessPathGetProcessInfo标题、类名、路径、进程详细信息。
GetWindowThreadIdGetWindowProcessId线程/进程 ID,用于注入、挂接等。
GetProcessIconImage取进程图标为图(常配合界面展示)。

五、交互与数据

接口差异
SendStringSendStringExEx 通常支持 编码/附加参数(见各页),向窗口发文本。
SetClipboardGetClipboardSendPaste剪贴板读写与 模拟粘贴

六、其它

接口说明
ReleaseWindowsDll与注入/Hook 相关时的 卸载 场景,见详情页。
MoveWindowSetWindowTextSetWindowTransparent移动、改标题、透明度。

七、快速选型

需求建议
后台截图 + 找图BindWindowEx + 配置截图模式 + 图像识别 MatchWindows*
VNC 全屏 + 窗口坐标脚本BindWindowEx(vnc) + SetClientLocation + MatchWindows* / MoveTo
只取某控件区域坐标GetClientRect + ClientToScreen
多开程序要选第 N 个窗口EnumWindow / FindWindowEx 循环,勿假设 FindWindow 唯一

更细的参数与 绑定模式表 以各接口详情页及 设置 中的键说明为准。